Skip to content

Conversation

@kirolous-nashaat
Copy link
Contributor

@kirolous-nashaat kirolous-nashaat commented Nov 4, 2025

Fixes #36894 , #34706

  • I've read the guidelines for contributing and seen the walkthrough
  • I've posted a comment on an issue with a detailed description of how I am planning to contribute and got approval from a member of the team
  • The code builds and tests pass locally (also verified by our automated build checks)
  • Commit messages follow this format:
  • Tests for the changes have been added (for bug fixes / features)
  • Code follows the same patterns and style as existing code in this repo

@kirolous-nashaat kirolous-nashaat requested a review from a team as a code owner November 4, 2025 17:39
@kirolous-nashaat kirolous-nashaat changed the title Main fix execute update Added metadata for complextypes for AddViews / TVF in RelationalModel #36894 , execute update for complex types (view+table) #34706 Nov 4, 2025
@AndriySvyryd AndriySvyryd self-assigned this Nov 8, 2025
@AndriySvyryd AndriySvyryd requested a review from Copilot November 25, 2025 00:44
Copilot finished reviewing on behalf of AndriySvyryd November 25, 2025 00:47
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for complex types in views and table-valued functions (TVFs) in the relational model, and enables ExecuteUpdate operations on entities with complex types that have view mappings. The changes fix issues #36894 and #34706.

  • Modified the ViewMapping constructor to accept ITypeBase instead of IEntityType, allowing complex types to be mapped to views
  • Updated the relational model generation to create view mappings for complex types
  • Enhanced ExecuteUpdate to properly handle complex types with view mappings by utilizing table mappings when views are encountered
  • Added comprehensive test coverage for the new functionality

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/EFCore.Relational/Metadata/Internal/ViewMapping.cs Changed constructor parameter from IEntityType to ITypeBase to support complex types
src/EFCore.Relational/Metadata/Internal/RelationalModel.cs Added logic to create view mappings for complex types recursively, similar to table mappings
src/EFCore.Relational/Metadata/Internal/RelationalTypeBaseExtensions.cs Refactored GetViewOrTableMappings for clarity with intermediate variables
src/EFCore.Relational/Query/RelationalQueryableMethodTranslatingExpressionVisitor.ExecuteUpdate.cs Added ProcessColumn call and fixed ProcessComplexType to handle view-to-table translation for complex types
test/EFCore.Relational.Specification.Tests/Query/UdfDbFunctionTestBase.cs Added ComplexGpsCoordinates complex type, MapLocation entity, and test for TVF with complex types mapped to views
test/EFCore.Relational.Specification.Tests/BulkUpdates/NonSharedModelBulkUpdatesRelationalTestBase.cs Removed exception assertion and added new test for updating individual complex type properties with view mappings
test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqlServerTest.cs Added SQL assertions for ExecuteUpdate operations on complex types with view mappings
test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqliteTest.cs Added SQL assertions for SQLite-specific ExecuteUpdate with complex type view mappings
test/EFCore.SqlServer.FunctionalTests/Query/UdfDbFunctionSqlServerTests.cs Added SQL assertion for TVF test with complex types
test/EFCore.SqlServer.FunctionalTests/Scaffolding/Baselines/ComplexTypes/DbContextModelBuilder.cs Updated baseline with view column and mapping metadata for complex types

You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

Copy link
Member

@AndriySvyryd AndriySvyryd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also add complex types and asserts to tests for view and TVF mapping in https://github.com/dotnet/efcore/blob/main/test/EFCore.Relational.Tests/Metadata/RelationalModelTest.cs

@kirolous-nashaat
Copy link
Contributor Author

Also add complex types and asserts to tests for view and TVF mapping in https://github.com/dotnet/efcore/blob/main/test/EFCore.Relational.Tests/Metadata/RelationalModelTest.cs

done.
addressed all comments and added the tests

@AndriySvyryd AndriySvyryd merged commit bbf6760 into dotnet:main Nov 25, 2025
7 checks passed
@AndriySvyryd
Copy link
Member

Thanks for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants